#ifndef MESSAGE_H_
#define MESSAGE_H_

#include <string>
#include "irrlicht.h"

class Entity;
class PostOffice;
// message class containing information to be sent
class Message
{
	friend class PostOffice;

	protected:
    // message sender          
	Entity* emitter__;
	// message content
	std::string message__;
	
	// extra information
	std::string extradata__ ;

	// extra info about a possible target
	irr::core::vector3df isAbout__ ;

	Message(Entity* e, const std::string& m);
	Message(Entity* e, const std::string& m,const std::string& ex);
	Message(Entity* e, const std::string& m,const std::string& ex,irr::core::vector3df about);
	void setEmitter(Entity* e);

	public:
	Message(const std::string& message);
	virtual ~Message();

	std::string& getMessage();
	Entity* getEmitter();
	irr::core::vector3df getIsAbout() ;
	std::string& getExtradata();
};

#include "Entity.h"

#endif

